package persistencia;

import entidades.Produto;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import negocio.Central;
import negocio.Util;

public class ProdutoDAO {

    String csv = "bd/produto.csv";
    
    public ArrayList<Produto> carrega() throws FileNotFoundException, IOException{
        ArrayList<Produto> produtoArray = new ArrayList<Produto>();
        BufferedReader br = new BufferedReader(new FileReader(csv));
        String l = br.readLine();
        while(l!=null){
            String[] lsplit = l.split(";");
            Produto p = new Produto();
            p.setIdProduto(Integer.parseInt(lsplit[0].trim()));
            p.setNome(lsplit[1].trim());
            p.setQuantidade(Integer.parseInt(lsplit[2].trim()));
            p.setValor(Double.parseDouble(lsplit[3].trim()));
            p.setLocal(lsplit[4]);
            produtoArray.add(p);
            l=br.readLine();
        }
        br.close();
        return produtoArray;
    }
    
    public void insere(Produto p) throws IOException{
        BufferedWriter bw = new BufferedWriter(new FileWriter(csv,true));
        bw.write(p.getIdProduto()+";"+p.getNome()+";"+p.getQuantidade()+";"+
                p.getValor()+";"+p.getLocal()+"\n");
        bw.close();
    }
    
    public void remove(ArrayList<Produto> produtoArray, Produto pRemove) throws IOException{
        Util.criaArquivo(csv);
        for(Produto p : produtoArray){
            if (!p.equals(pRemove)) insere(p);
        }
    }
    
    public void modifica(ArrayList<Produto> produtoArray) throws IOException{
        Util.criaArquivo(csv);
        for(Produto p : produtoArray){
            insere(p);
        }
    }
}
